package com.winchain.chainbill.bill.biz.transfer.vo;

import com.shell.bee.base.utils.StringUtil;
import com.winchain.chainbill.bill.base.po.CbRec;
import com.winchain.chainbill.bill.base.po.CbStats;
import com.winchain.chainbill.bill.base.po.CbXfe;
import com.winchain.chainbill.bill.biz.send.vo.BillAttInvoice;
import java.math.BigDecimal;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Transient;
import org.springframework.beans.BeanUtils;

public class BillTransfer extends CbXfe {
	@Column(name = "bill_code")
	private String billCode;
	@Column(name = "bill_type")
	private String billType;
	@Column(name = "root_id")
	private String rootId;
	@Column(name = "prnt_id")
	private String prntId;
	private String xfePrntId;
	@Column(name = "bill_amt")
	private BigDecimal billAmt;
	@Column(name = "cb_opt_seq")
	private Integer cbOptSeq;
	@Column(name = "cb_hldr_lvl")
	private Integer cbHldrLvl;
	@Column(name = "snd_date")
	private String sndDate;
	@Column(name = "exp_date")
	private String expDate;
	@Column(name = "bill_state")
	private String billState;
	@Column(name = "chd_num")
	private Integer chdNum;
	@Column(name = "xfe_freq")
	private Integer xfeFreq;
	@Column(name = "dct_amt")
	private BigDecimal dctAmt;
	@Transient
	private String remark;
	private String rpmtState;
	private String finId;
	private String finNm;
	private List<BillAttInvoice> billAttInvoices;

	public String getBillCode() {
		return this.billCode;
	}

	public void setBillCode(String billCode) {
		this.billCode = billCode;
	}

	public String getBillType() {
		return this.billType;
	}

	public void setBillType(String billType) {
		this.billType = billType;
	}

	public String getRootId() {
		return this.rootId;
	}

	public void setRootId(String rootId) {
		this.rootId = rootId;
	}

	public String getPrntId() {
		return this.prntId;
	}

	public void setPrntId(String prntId) {
		this.prntId = prntId;
	}

	public BigDecimal getBillAmt() {
		return this.billAmt;
	}

	public void setBillAmt(BigDecimal billAmt) {
		this.billAmt = billAmt;
	}

	public Integer getCbOptSeq() {
		return this.cbOptSeq;
	}

	public void setCbOptSeq(Integer cbOptSeq) {
		this.cbOptSeq = cbOptSeq;
	}

	public Integer getCbHldrLvl() {
		return this.cbHldrLvl;
	}

	public void setCbHldrLvl(Integer cbHldrLvl) {
		this.cbHldrLvl = cbHldrLvl;
	}

	public String getSndDate() {
		return this.sndDate;
	}

	public void setSndDate(String sndDate) {
		this.sndDate = sndDate;
	}

	public String getExpDate() {
		return this.expDate;
	}

	public void setExpDate(String expDate) {
		this.expDate = expDate;
	}

	public String getBillState() {
		return this.billState;
	}

	public void setBillState(String billState) {
		this.billState = billState;
	}

	public Integer getChdNum() {
		return this.chdNum;
	}

	public void setChdNum(Integer chdNum) {
		this.chdNum = chdNum;
	}

	public Integer getXfeFreq() {
		return this.xfeFreq;
	}

	public void setXfeFreq(Integer xfeFreq) {
		this.xfeFreq = xfeFreq;
	}

	public BigDecimal getDctAmt() {
		return this.dctAmt;
	}

	public void setDctAmt(BigDecimal dctAmt) {
		this.dctAmt = dctAmt;
	}

	public String getRemark() {
		return this.remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getRpmtState() {
		return this.rpmtState;
	}

	public void setRpmtState(String rpmtState) {
		this.rpmtState = rpmtState;
	}

	public String getFinId() {
		return this.finId;
	}

	public void setFinId(String finId) {
		this.finId = finId;
	}

	public String getFinNm() {
		return this.finNm;
	}

	public void setFinNm(String finNm) {
		this.finNm = finNm;
	}

	public CbRec getRec() {
		CbRec record = new CbRec();
		BeanUtils.copyProperties(this, record);
		record.setOptSeq(getCbOptSeq());
		record.setHldrLvl(getCbHldrLvl());
		return record;
	}

	public CbStats getStats() {
		CbStats stats = new CbStats();
		BeanUtils.copyProperties(this, stats);
		return stats;
	}

	public CbXfe getTransfer() {
		CbXfe xfe = new CbXfe();
		BeanUtils.copyProperties(this, xfe);
		if (StringUtil.notEmpty(getXfePrntId())) {
			xfe.setPrntId(getXfePrntId());
		}
		return xfe;
	}

	public String getXfePrntId() {
		return this.xfePrntId;
	}

	public void setXfePrntId(String xfePrntId) {
		this.xfePrntId = xfePrntId;
	}

	public List<BillAttInvoice> getBillAttInvoices() {
		return this.billAttInvoices;
	}

	public void setBillAttInvoices(List<BillAttInvoice> billAttInvoices) {
		this.billAttInvoices = billAttInvoices;
	}
}
